package cn.addapp.ohospickers.adapter;


/**
 * Numeric Wheel adapter.
 *
 * @author matt
 * blog: addapp.cn
 */
public class NumericWheelAdapter implements WheelAdapter {

  /**
   * The default min value
   */
  public static final int DEFAULT_MAX_VALUE = 9;

  /**
   * The default max value
   */
  private static final int DEFAULT_MIN_VALUE = 0;

  // Values
  private int minValue;
  private int maxValue;

  /**
   * Default constructor
   */
  public NumericWheelAdapter() {
    this(DEFAULT_MIN_VALUE, DEFAULT_MAX_VALUE);
  }

  /**
   * Constructor
   *
   * @param minValue the wheel min value
   * @param maxValue the wheel max value
   */
  public NumericWheelAdapter(int minValue, int maxValue) {
    this.minValue = minValue;
    this.maxValue = maxValue;
  }

  @Override
  public Object getItem(int index) {
    if (index >= 0 && index < getItemsCount()) {
      int value = minValue + index;
      return value;
    }
    return 0;
  }

  @Override
  public int getItemsCount() {
    return maxValue - minValue + 1;
  }

  @Override
  public int indexOf(Object o) {
    try {
      return (int) o - minValue;
    } catch (Exception e) {
      return -1;
    }

  }
}
